/* Includes ------------------------------------------------------------------*/
#include "SysTick.h"
#include <time.h>


void SysDelayMs(u32 ms)
{
	u32 start = GetSysTick();
	while(!isSysTickTimeout(start, ms));
}

void SysDelay1ms(u32 ms)
{
	u32 start = GetSysTick();
	while(!isSysTickTimeout(start, ms));
}


/*******************************************************************************
* Function Name  : InitSysTick
* Description    : Initialize Sys Tick.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void InitSysTick(void)
{
	
}




/*******************************************************************************
* Function Name  : GetSysTick
* Description    : return msSysTick value
* Input          : None
* Output         : None
* Return         : msSystick value  ms
*******************************************************************************/
u32 GetSysTick(void)
{
	u32 temp;
	
	temp = clock();
	
	return temp;
}


/*******************************************************************************
* Function Name  : isSysTickTimeout
* Description    : is time out
* Input          : startTiming--start sys tick count
			 delayTimming--delay time   (ms)
* Output         : None
* Return         : TRUE---time out
*******************************************************************************/
bool isSysTickTimeout(vu32 startTiming, vu32 delayTimming)
{
	u32 endTiming;
	
	endTiming = GetSysTick();
	if(endTiming >= startTiming)
	{
		if( (endTiming-startTiming) <delayTimming)
		{
			return FALSE;
		}
		else
		{
			return TRUE;  // time out
		}
		
	}
	else if((startTiming>(U32_MAX>>1))&&(endTiming<(U32_MAX>>1)))
	{
		if((endTiming+(U32_MAX-startTiming)) < delayTimming)
		{
			return FALSE;
		}
		else
		{
			return TRUE; // time out
		}
	}
	return FALSE;
}


